1600 |
How do I set a computated cell individually
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Number") oG2antt:Columns():Add("Format") oItems := oG2antt:Items() h := oItems:AddItem("1.23") oItems:SetProperty("CellValueFormat",h,1,2/*exComputedField*/) oItems:SetProperty("CellValue",h,1,"2 * %0 + ` (2 * Number)`") h := oItems:AddItem("1.23") oItems:SetProperty("CellValueFormat",h,1,2/*exComputedField*/) oItems:SetProperty("CellValue",h,1,"3 * %0 + ` (3 * Number)`") h := oItems:AddItem("1.23") oItems:SetProperty("CellValueFormat",h,1,2/*exComputedField*/) oItems:SetProperty("CellValue",h,1,"currency(%0) + ` ( Currency(Number) )`") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1599 |
How can I hide a specific hour
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oInsideZooms,oInsideZooms1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:DrawGridLines := -1/*exAllLines*/ oG2antt:Columns():Add("Default") oChart := oG2antt:Chart() oChart:AllowInsideZoom := .T. oChart:FirstWeekDay := 1/*exMonday*/ oChart:FirstVisibleDate := "03/31/2013" oChart:SetProperty("PaneWidth",.F.,52) oChart:LevelCount := 2 oChart:UnitScale := 65536/*exHour*/ oChart:Level(1):Label := "<font ;6><%h%></font>" oChart:UnitWidth := 14 oChart:DrawGridLines := -1/*exAllLines*/ oChart:AllowInsideZoom := .T. oChart:DefaultInsideZoomFormat():InsideUnit := 1048576/*exMinute*/ oChart:AllowResizeInsideZoom := .F. oChart:InsideZoomOnDblClick := .F. oInsideZooms := oChart:InsideZooms() oInsideZooms:SplitBaseLevel := .F. oInsideZooms:DefaultWidth := 0 oInsideZooms1 := oChart:InsideZooms() oInsideZooms1:Add("03/31/2013 23:00:00") oItems := oG2antt:Items() oItems:AddItem("Item") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1598 |
Is it possible to define the keys of the drop down values to be strings rather than numeric values
PROCEDURE OnChange(oG2antt,Item,ColIndex,NewValue) DevOut( "NewValue is" ) DevOut( Transform(NewValue,"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor,oEditor1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Change := {|Item,ColIndex,NewValue| OnChange(oG2antt,Item,ColIndex,NewValue)} /*Occurs when the user changes the cell's content.*/ oEditor := oG2antt:Columns():Add("DropDownList-String"):Editor() oEditor:EditType := 3/*DropDownListType*/ oEditor:AddItem(1,"NYC|New York City") oEditor:AddItem(2,"CJN|Cluj Napoca") oEditor1 := oG2antt:Columns():Add("DropDownList-Numeric"):Editor() oEditor1:EditType := 3/*DropDownListType*/ oEditor1:AddItem(1,"New York City") oEditor1:AddItem(2,"Cluj Napoca") oItems := oG2antt:Items() oItems:SetProperty("CellValue",oItems:AddItem("NYC"),1,2) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1597 |
I have an edit field, when going to edit mode, the rightmost part is shown. Is it possible to show the left part instead
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oEditor LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oColumn := oG2antt:Columns():Add("Edit") oColumn:Width := 64 oColumn:AllowSizing := .F. oEditor := oColumn:Editor() oEditor:EditType := 8/*MaskType*/ oEditor:Mask := ";;;rich" oG2antt:Columns():Add("Empty") oItems := oG2antt:Items() oItems:AddItem("This is a bit ot long text") oItems:AddItem("") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1596 |
I have a drop down field, the control shows the rightmost part of the selected caption. Is it possible to show the left part
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1 LOCAL oEditor,oEditor1,oEditor2,oEditor3 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oColumn := oG2antt:Columns():Add("DropDown") oColumn:Width := 64 oColumn:AllowSizing := .F. oEditor := oColumn:Editor() oEditor:DropDownAlignment := 32/*0x20+*/ oEditor:EditType := 2/*DropDownType*/ oEditor:AddItem(1,"First item. This is a bit ot long text") oEditor:AddItem(2,"Second item. This is a bit ot long text") oEditor:AddItem(3,"Third item. This is a bit ot long text") oEditor:Mask := ";;;rich" oColumn1 := oG2antt:Columns():Add("PickEdit") oColumn1:Width := 64 oColumn1:AllowSizing := .F. oEditor1 := oColumn1:Editor() oEditor1:DropDownAlignment := 32/*0x20+*/ oEditor1:EditType := 14/*PickEditType*/ oEditor1:AddItem(1,"First item. This is a bit ot long text") oEditor1:AddItem(2,"Second item. This is a bit ot long text") oEditor1:AddItem(3,"Third item. This is a bit ot long text") oEditor1:Mask := ";;;rich" oG2antt:Columns():Add("Empty") oItems := oG2antt:Items() oItems:SetProperty("CellValue",oItems:AddItem("First item. This is a bit ot long text"),1,"Second item. This is a bit ot long text") h := oItems:AddItem("First item. This is a bit ot long text") oEditor2 := oItems:CellEditor(h,0) oEditor2:DropDownAlignment := 32/*0x20+*/ oEditor2:EditType := 2/*DropDownType*/ oEditor2:AddItem(1,"First item. This is a bit ot long text") oEditor2:AddItem(2,"Second item. This is a bit ot long text") oEditor2:AddItem(3,"Third item. This is a bit ot long text") oItems:SetProperty("CellValue",h,1,"Second item. This is a bit ot long text") oEditor3 := oItems:CellEditor(h,1) oEditor3:DropDownAlignment := 32/*0x20+*/ oEditor3:EditType := 14/*PickEditType*/ oEditor3:AddItem(1,"First item. This is a bit ot long text") oEditor3:AddItem(2,"Second item. This is a bit ot long text") oEditor3:AddItem(3,"Third item. This is a bit ot long text") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1595 |
Is there a property for the back color of the dropdown field
|
1594 |
Is it possible to change a back color of the field/cell when it takes a focus
PROCEDURE OnEditClose(oG2antt) LOCAL oItems oItems := oG2antt:Items() oItems:ClearCellBackColor(oItems:FocusItem(),oG2antt:FocusColumnIndex()) RETURN PROCEDURE OnEditOpen(oG2antt) LOCAL oItems,oItems1 oItems := oG2antt:Items() oItems:SetProperty("CellBackColor",oItems:FocusItem(),oG2antt:FocusColumnIndex(),AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oItems1 := oG2antt:Items() oItems1:SetProperty("CellValue",oItems1:FocusItem(),oG2antt:FocusColumnIndex(),oG2antt:Items():CellValue(oG2antt:Items():FocusItem(),oG2antt:FocusColumnIndex())) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:EditClose := {|| OnEditClose(oG2antt)} /*Occurs when the edit operation ends.*/ oG2antt:EditOpen := {|| OnEditOpen(oG2antt)} /*Occurs when the edit operation starts.*/ oG2antt:FullRowSelect := 0/*exColumnSel*/ oG2antt:Columns():Add("C1"):Editor():EditType := 1/*EditType*/ oG2antt:Columns():Add("C2"):Editor():EditType := 1/*EditType*/ oItems := oG2antt:Items() oItems:SetProperty("CellValue",oItems:AddItem("v1"),1,"v2") oItems:SetProperty("CellValue",oItems:AddItem("v3"),1,"v4") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1593 |
How can I display the current date mask, but still allow empty values
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:CauseValidateValue := -1/*exValidateCell*/ oG2antt:FullRowSelect := 0/*exColumnSel*/ oG2antt:DrawGridLines := -2/*exRowLines*/ oEditor := oG2antt:Columns():Add("Date"):Editor() oEditor:EditType := 7/*DateType*/ oEditor:Mask := "!99/99/9999;1;;empty=1,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,overtype" oItems := oG2antt:Items() oItems:AddItem() oItems:AddItem("01/01/2001") oItems:AddItem() oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1592 |
How can I align the days in a DateType editor
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor,oEditor1,oEditor2,oEditor3,oEditor4,oEditor5 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Columns():Add("DropDown") oItems := oG2antt:Items() oEditor := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor:EditType := 7/*DateType*/ oEditor:DropDownAlignment := 2/*RightAlignment*/ oEditor1 := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor1:EditType := 7/*DateType*/ oEditor1:DropDownAlignment := 1/*CenterAlignment*/ oEditor2 := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor2:EditType := 7/*DateType*/ oEditor2:DropDownAlignment := 0/*LeftAlignment*/ oEditor3 := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor3:EditType := 7/*DateType*/ oEditor3:DropDownAlignment := 32/*0x20+*/ oEditor4 := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor4:EditType := 7/*DateType*/ oEditor4:DropDownAlignment := 33/*0x20+CenterAlignment*/ oEditor5 := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor5:EditType := 7/*DateType*/ oEditor5:DropDownAlignment := 34/*0x20+RightAlignment*/ oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1591 |
How can I align the drop down portion rather the inside captions
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor,oEditor1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Columns():Add("DropDown"):Editor():EditType := 7/*DateType*/ oItems := oG2antt:Items() oEditor := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor:EditType := 7/*DateType*/ oEditor:DropDownAlignment := 32/*0x20+*/ oEditor1 := oItems:CellEditor(oItems:AddItem("01/01/2001"),0) oEditor1:EditType := 7/*DateType*/ oEditor1:DropDownAlignment := 16/*exHOutside*/ oItems:AddItem("01/01/2001") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1590 |
Is it possible to show a message that the field is empty
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:DrawGridLines := -2/*exRowLines*/ oG2antt:FullRowSelect := 0/*exColumnSel*/ oColumn := oG2antt:Columns():Add("Float") oEditor := oColumn:Editor() oEditor:EditType := 8/*MaskType*/ oEditor:Mask := ";;;float,digits=0,grouping=,invalid=empty,warning=invalid character" oG2antt:Items():AddItem(192278) oG2antt:Items():AddItem(1000) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1589 |
How can I mask a date
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor,oEditor1,oEditor2,oEditor3,oEditor4,oEditor5,oEditor6,oEditor7,oEditor8 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:CauseValidateValue := -1/*exValidateCell*/ oG2antt:FullRowSelect := 0/*exColumnSel*/ oG2antt:DrawGridLines := -2/*exRowLines*/ oG2antt:Columns():Add("Date") oG2antt:Columns():Add("Mask") oItems := oG2antt:Items() h := oItems:AddItem("01/01/2001") oEditor := oItems:CellEditor(h,0) oEditor:EditType := 7/*DateType*/ oEditor:Mask := "{1,12}/{1,31}/{1950,2050};1;;select=1,warning=Invalid character!,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,validateas=1" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oEditor1 := oItems:CellEditor(h,0) oEditor1:EditType := 7/*DateType*/ oEditor1:Mask := "!99/99/9999;1;;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,overtype" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oEditor2 := oItems:CellEditor(h,0) oEditor2:EditType := 7/*DateType*/ oEditor2:Mask := "!99/99/9999;;;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,overtype" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oEditor3 := oItems:CellEditor(h,0) oEditor3:EditType := 7/*DateType*/ oEditor3:Mask := "!99/99/9999;; ;select=4,overtype,empty,warning=Invalid character!,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,validateas=1" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oEditor4 := oItems:CellEditor(h,0) oEditor4:EditType := 7/*DateType*/ oEditor4:Mask := "![0-9 ][0-9 ]/[0-9 ][0-9 ]/[0-9 ][0-9 ][0-9 ][0-9 ];1;;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,leading= " oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oItems:SetProperty("FormatCell",h,0,"len(value) ? shortdateF(value) : ``") oEditor5 := oItems:CellEditor(h,0) oEditor5:EditType := 7/*DateType*/ oEditor5:Mask := "!99/99/9999;1;;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,overtype,leading" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oItems:SetProperty("FormatCell",h,0,"len(value) ? shortdateF(value) : ``") oEditor6 := oItems:CellEditor(h,0) oEditor6:EditType := 7/*DateType*/ oEditor6:Mask := "!00/00/0000;1;;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,overtype,leading" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oItems:SetProperty("FormatCell",h,0,"len(value) ? shortdateF(value) : ``") oEditor7 := oItems:CellEditor(h,0) oEditor7:EditType := 7/*DateType*/ oEditor7:Mask := "!00/00/0000;;0;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=4,overtype" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) h := oItems:AddItem("01/01/2001") oItems:SetProperty("FormatCell",h,0,"len(value) ? shortdateF(value) : ``") oEditor8 := oItems:CellEditor(h,0) oEditor8:EditType := 7/*DateType*/ oEditor8:Mask := "!00/00/0000;;;empty,validateas=1,invalid=Invalid date\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,select=1,overtype" oItems:SetProperty("CellValue",h,1,oItems:CellEditor(h,0):Mask()) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1588 |
How can I display and edit an integer number to show grouping digits too ( no decimals)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oColumn := oG2antt:Columns():Add("Float") oColumn:FormatColumn := "value format `0`" oEditor := oColumn:Editor() oEditor:EditType := 8/*MaskType*/ oEditor:Mask := ";;;float,digits=0" oG2antt:Items():AddItem(192278) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1587 |
How can I display and edit a float number to show grouping digits too
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oColumn := oG2antt:Columns():Add("Float") oColumn:FormatColumn := "value format ``" oEditor := oColumn:Editor() oEditor:EditType := 8/*MaskType*/ oEditor:Mask := ";;;float" oG2antt:Items():AddItem(192278) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1586 |
How can I mask a phone number
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor,oEditor1,oEditor2,oEditor3 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:CauseValidateValue := -1/*exValidateCell*/ oG2antt:DrawGridLines := -2/*exRowLines*/ oG2antt:FullRowSelect := 0/*exColumnSel*/ oG2antt:Columns():Add("Phone"):Editor():EditType := 8/*MaskType*/ oItems := oG2antt:Items() h := oItems:AddItem() oEditor := oItems:CellEditor(h,0) oEditor:EditType := 8/*MaskType*/ oEditor:Mask := "!(999) 000 0000;1;;select=1,empty,overtype,warning=invalid characer,invalid=The value you entered isn't appropriate for the input mask <b>'<%mask%>'</b> specified for this field." h := oItems:AddItem("0123") oEditor1 := oItems:CellEditor(h,0) oEditor1:EditType := 8/*MaskType*/ oEditor1:Mask := "!(999) 000 0000;2;;select=4" h := oItems:AddItem("0123") oEditor2 := oItems:CellEditor(h,0) oEditor2:EditType := 8/*MaskType*/ oEditor2:Mask := "`Phone: `!(999) 000-0000" h := oItems:AddItem("(074) 876-1222") oEditor3 := oItems:CellEditor(h,0) oEditor3:EditType := 8/*MaskType*/ oEditor3:Mask := "!(999) 000-0000;0" oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1585 |
Is it possible to display the ColorType fields using RGB format
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor,oEditor1,oEditor2,oEditor3,oEditor4,oEditor5,oEditor6 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Columns():Add("Color"):Editor():EditType := 9/*ColorType*/ oItems := oG2antt:Items() oItems:AddItem(255) h := oItems:AddItem(255) oEditor := oItems:CellEditor(h,0) oEditor:EditType := 9/*ColorType*/ oEditor:Mask := "`RGB(`{0,255}\,{0,255}\,{0,255}`)`;;0" h := oItems:AddItem(255) oEditor1 := oItems:CellEditor(h,0) oEditor1:EditType := 9/*ColorType*/ oEditor1:Mask := "`&H`XXXXXXXX`&`;;0;overtype,insertype,warning=Wrong!" h := oItems:AddItem(255) oEditor2 := oItems:CellEditor(h,0) oEditor2:EditType := 9/*ColorType*/ oEditor2:Mask := "`0x`XX `0x`XX `0x`XX;;0;overtype,insertype,warning=Wrong!" h := oItems:AddItem(255) oEditor3 := oItems:CellEditor(h,0) oEditor3:EditType := 9/*ColorType*/ oEditor3:Mask := "R{0,255} G{0,255} B{0,255};;0;overtype,insertype,warning=Wrong!" h := oItems:AddItem(255) oEditor4 := oItems:CellEditor(h,0) oEditor4:EditType := 9/*ColorType*/ oEditor4:Mask := "`(hexa) RGB 0x`XXXXXX;;0;overtype,insertype,warning=Wrong!" h := oItems:AddItem(255) oEditor5 := oItems:CellEditor(h,0) oEditor5:EditType := 9/*ColorType*/ oEditor5:Mask := "`(decimal) Red: `{0,255}` Green: `{0,255}` Blue: `{0,255};;0;overtype,insertype,warning=Wrong!" h := oItems:AddItem(255) oEditor6 := oItems:CellEditor(h,0) oEditor6:EditType := 9/*ColorType*/ oEditor6:Mask := "`(combine) Red: `{0,255}` Green: 0x`XX` Blue: `{0,255};;0;overtype,insertype,warning=Wrong!" oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1584 |
How can I specify a different color for bars that cross over the non-working part of the chart
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oBars LOCAL oChart LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Columns():Add("Task") oBars := oG2antt:Chart():Bars() oBars:CallMethod("Copy","Task","STask"):SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oBars:Add("Task:STask"):Shortcut := "TS" oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,96) oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("NonworkingDaysColor",oChart:Bars:Item("STask"):Color()) oItems := oG2antt:Items() oItems:AddBar(oItems:AddItem("Task 1"),"TS","01/02/2001","01/16/2001") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1583 |
How can I merge two columns
PROCEDURE OnAddItem(oG2antt,Item) oG2antt:Items():SetProperty("CellMerge",Item,0,1) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:AddItem := {|Item| OnAddItem(oG2antt,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oG2antt:MarkSearchColumn := .F. oG2antt:TreeColumnIndex := -1 oG2antt:DrawGridLines := -1/*exAllLines*/ oG2antt:Columns():Add("C1"):SetProperty("Def",16/*exCellSingleLine*/,.F.) oG2antt:Columns():Add("C2") oG2antt:Columns():Add("C3") oItems := oG2antt:Items() oItems:AddItem("This is bit of text that's shown on multiple lines. This is bit of text that's shown on multiple lines.") oItems:AddItem("This is bit of text that's shown on multiple lines. This is bit of text that's shown on multiple lines.") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1582 |
How can I expand an item once the user clicks the column's checkbox
PROCEDURE OnCellStateChanged(oG2antt,Item,ColIndex) LOCAL oItems oItems := oG2antt:Items() oItems:SetProperty("ExpandItem",Item,.F.) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oColumns LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oG2antt,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oG2antt:BeginUpdate() oColumns := oG2antt:Columns() oColumn := oColumns:Add("") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:AllowSizing := .F. oColumn:Width := 18 oColumn:PartialCheck := .T. oColumns:Add("Tasks") oG2antt:ShowFocusRect := .F. oG2antt:HasButtons := 0/*exNoButtons*/ oG2antt:TreeColumnIndex := 1 oG2antt:Indent := 14 oG2antt:ExpandOnDblClick := .F. oG2antt:LinesAtRoot := 0/*exNoLinesAtRoot*/ oItems := oG2antt:Items() h := oItems:AddItem("") oItems:SetProperty("CellState",h,0,1) oItems:SetProperty("CellValue",h,1,"Project") hChild := oItems:InsertItem(h,,"") oItems:SetProperty("CellValue",hChild,1,"Task 1") hChild := oItems:InsertItem(h,,"") oItems:SetProperty("CellValue",hChild,1,"Task 2") oItems:SetProperty("ExpandItem",h,.T.) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1581 |
How can I define a column with check-box
|
1580 |
We need to know how it's possibile to have the bars on the same line and not in a different line
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:DrawGridLines := -1/*exAllLines*/ oChart := oG2antt:Chart() oChart:DrawGridLines := -1/*exAllLines*/ oChart:FirstVisibleDate := "01/01/2002" oChart:Bars:Item("Task"):OverlaidType := 515/*exOverlaidBarsStackAutoArrange+exOverlaidBarsStack*/ oChart:SetProperty("PaneWidth",.F.,128) oG2antt:Columns():Add("Task") oItems := oG2antt:Items() h := oItems:AddItem("Tasks") oItems:AddBar(h,"Task","01/02/2002","01/07/2002","A") oItems:AddBar(h,"Task","01/03/2002","01/08/2002","B") oItems:AddBar(h,"Task","01/04/2002","01/09/2002","C") oItems:SetProperty("ItemBar",h,"A",33/*exBarColor*/,255) oItems:AddLink("AB",h,"A",h,"B") oItems:AddLink("BC",h,"B",h,"C") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1579 |
The Change event gets me the today date. How can I find what user typed
PROCEDURE OnChange(oG2antt,Item,ColIndex,NewValue) DevOut( "NewValue:" ) DevOut( Transform(NewValue,"") ) DevOut( "EditingValue:" ) DevOut( oG2antt:EditingText() ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Change := {|Item,ColIndex,NewValue| OnChange(oG2antt,Item,ColIndex,NewValue)} /*Occurs when the user changes the cell's content.*/ oG2antt:BeginUpdate() oG2antt:Chart():SetProperty("PaneWidth",.T.,0) oG2antt:Columns():Add("Edit"):Editor():EditType := 7/*DateType*/ oG2antt:Items():AddItem("01/01/2001") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1578 |
How can I add a footer row
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ShowLockedItems := .T. oG2antt:DrawGridLines := 2/*exVLines*/ oG2antt:Columns():Add("C1") oG2antt:Columns():Add("C2") oItems := oG2antt:Items() oItems:SetProperty("LockedItemCount",2/*exBottom*/,1) h := oItems:LockedItem(2/*exBottom*/,0) oItems:SetProperty("ItemBackColor",h,AutomationTranslateColor( GraMakeRGBColor ( { 128,128,128 } ) , .F. )) oItems:SetProperty("ItemForeColor",h,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oItems:SetProperty("CellValue",h,0,"footer c1") oItems:SetProperty("CellValue",h,1,"footer c2") oItems:SetProperty("CellValue",oItems:AddItem("cell"),1,"cell") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1577 |
How can I add a header row
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ShowLockedItems := .T. oG2antt:DrawGridLines := 2/*exVLines*/ oG2antt:Columns():Add("C1") oG2antt:Columns():Add("C2") oItems := oG2antt:Items() oItems:SetProperty("LockedItemCount",0/*exTop*/,1) h := oItems:LockedItem(0/*exTop*/,0) oItems:SetProperty("ItemBackColor",h,AutomationTranslateColor( GraMakeRGBColor ( { 128,128,128 } ) , .F. )) oItems:SetProperty("ItemForeColor",h,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oItems:SetProperty("CellValue",h,0,"footer c1") oItems:SetProperty("CellValue",h,1,"footer c2") oItems:SetProperty("CellValue",oItems:AddItem("cell"),1,"cell") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1576 |
How can I fix a column, while other sizable and fill the control's client
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ColumnAutoResize := .T. oG2antt:Columns():Add("Sizable") oColumn := oG2antt:Columns():Add("F") oColumn:AllowSizing := .F. oColumn:Width := 16 oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1575 |
How can I programmatically add more columns to the sort bar and other to be sorted, but not included in the sort bar
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:SortBarVisible := .T. oColumns := oG2antt:Columns() oColumns:Add(Transform(0,"")) oColumns:Add(Transform(1,"")) oColumns:Add(Transform(2,"")) oColumns:Add(Transform(3,"")) oColumns:Add(Transform(4,"")) oG2antt:Layout := "multiplesort=" + CHR(34) + "C3:1 C4:2" + CHR(34) + ";singlesort=" + CHR(34) + "C2:1" + CHR(34) + "" oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1574 |
I'm using different bar types, in order to use different colours. The problem I'm having is that when two bars of different types overlap, and should in the histogram show as overallocated, they instead overlap here too, and show as single unit. Is there a way I can correctly show this as an overallocation
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:HistogramVisible := .T. oChart:HistogramHeight := 32 oChart:Bars:Item("Task"):HistogramPattern := 6/*exPatternBDiagonal*/ oChart:SetProperty("PaneWidth",.F.,128) oG2antt:Columns():Add("Column") oItems := oG2antt:Items() oItems:AddBar(oItems:AddItem("Item 1"),"Task","01/02/2001","01/04/2001") h := oItems:AddItem("Item 2") oItems:AddBar(h,"Task","01/03/2001","01/07/2001") oItems:SetProperty("ItemBar",h,"",33/*exBarColor*/,255) oItems:AddBar(oItems:AddItem("Item 3"),"Task","01/06/2001","01/09/2001") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1573 |
Is it possible to assign a different EBN to a specified bar
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oAppearance LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oAppearance := oG2antt:VisualAppearance() oAppearance:Add(1,"c:\exontrol\images\normal.ebn") oAppearance:Add(2,"c:\exontrol\images\pushed.ebn") oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,128) oG2antt:Columns():Add("Tasks") oItems := oG2antt:Items() h := oItems:AddItem("Task 1") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") h := oItems:AddItem("Task 2") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",33/*exBarColor*/,255) h := oItems:AddItem("Task 3") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",33/*exBarColor*/,16777216) h := oItems:AddItem("Task 4") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",33/*exBarColor*/,16777471) h := oItems:AddItem("Task 5") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",33/*exBarColor*/,33619967) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1572 |
How can I provide a mask for a date column
PROCEDURE OnChange(oG2antt,Item,ColIndex,NewValue) DevOut( "Prev Value " ) DevOut( Transform(oG2antt:Items:CellValue(Item,ColIndex),"") ) DevOut( "Check and Update the NewValue" ) DevOut( Transform(NewValue,"") ) NewValue := "01/01/2001" RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Change := {|Item,ColIndex,NewValue| OnChange(oG2antt,Item,ColIndex,NewValue)} /*Occurs when the user changes the cell's content.*/ oG2antt:BeginUpdate() oG2antt:MarkSearchColumn := .F. oColumn := oG2antt:Columns():Add("Date") oColumn:FormatColumn := "day(value) + `/` + month(value) + `/` + year(value)" oEditor := oColumn:Editor() oEditor:EditType := 7/*DateType*/ oEditor:Mask := "{1,12}\/{1,31}\/{1,2099}" oG2antt:Items():AddItem("01/01/2001") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1571 |
I am trying to introduce a custom tool tip to those particular cells. I have it working and I know I can style the font etc. however, what I would like to do is style the tooltip container itself like add some padding or add a border color. Is this possible
|
1570 |
Is it possible to edit a float number without using of e/E/d/D (exponent) and +/- (signs) characters
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oEditor := oG2antt:Columns():Add("Edit"):Editor() oEditor:EditType := 1/*EditType*/ oEditor:Numeric := 770/*exDisableSigns+exFloatInteger*/ oG2antt:Items():AddItem(1.22) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1569 |
How can I edit a float number with no using of e/E/d/D and + character
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oEditor := oG2antt:Columns():Add("Edit"):Editor() oEditor:EditType := 1/*EditType*/ oEditor:Numeric := 258/*exDisablePlus+exFloatInteger*/ oG2antt:Items():AddItem(1.22) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1568 |
Is it possible to edit a float number with no using of e/E/d/D (exponent) characters
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oEditor := oG2antt:Columns():Add("Edit"):Editor() oEditor:EditType := 1/*EditType*/ oEditor:Numeric := 2/*exFloatInteger*/ oG2antt:Items():AddItem(1.22) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1567 |
How can I edit an integer with no using of +/- signs
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oEditor oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oEditor := oG2antt:Columns():Add("Edit"):Editor() oEditor:EditType := 1/*EditType*/ oEditor:Numeric := 1023/*0xfc+exDisableSigns+exFloatInteger+exFloat*/ oG2antt:Items():AddItem(1) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1566 |
When I'm trying to show string with "line break" character (vbCrLF) in a textbox, it shows 2 squares. Is there any way to hide these squares
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oColumns := oG2antt:Columns() oColumns:Add("Value") oColumn := oColumns:Add("CellSingleLine = False") oColumn:ComputedField := "%0" oColumn:SetProperty("Def",16/*exCellSingleLine*/,.F.) oColumn1 := oColumns:Add("FormatColumn/replace CRLF") oColumn1:ComputedField := "%0" oColumn1:FormatColumn := "value replace `\r\n` with ``" oColumn2 := oColumns:Add("FormatColumn/replace TAB,CRLF") oColumn2:ComputedField := "%0" oColumn2:FormatColumn := "(value replace `\t` with ``) replace `\r\n` with ``" oItems := oG2antt:Items() oItems:AddItem("a\ta\r\nb\tb") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1565 |
I am using the Chart.ShowLinksColor property, the question is it is possible to prevent changing the bar's color
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h1,h2,h3 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:DefaultItemHeight := 24 oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:LevelCount := 2 oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,48) oChart:NonworkingDays := 0 oChart:LinksStyle := 0/*exLinkSolid*/ oChart:SetProperty("ShowLinksColor",17/*exUpdateColorLinksOnly+exShowLinksStartFrom*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oChart:SetProperty("ShowLinksColor",18/*exUpdateColorLinksOnly+exShowLinksEndTo*/,AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems := oG2antt:Items() h1 := oItems:AddItem("Task 1") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","") h2 := oItems:AddItem("Task 2") oItems:AddBar(h2,"Task","01/02/2001","01/04/2001","") oItems:SetProperty("ItemBar",h2,"",257/*exBarSelected*/,.T.) oItems:AddLink("L1",h1,"",h2,"") h3 := oItems:AddItem("Task 3") oItems:AddBar(h3,"Task","01/02/2001","01/04/2001","") oItems:AddLink("L2",h2,"",h3,"") oItems:SchedulePDM(0,"") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1564 |
Apparently, the links are shown on the back. Is there any option to bring them in front
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h1,h2 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Tasks") oChart := oG2antt:Chart() oChart:FirstVisibleDate := "09/19/2006" oChart:SetProperty("PaneWidth",.F.,64) oChart:NonworkingDaysPattern := 1/*exPatternSolid*/ oChart:ShowLinks := 17/*exShowLinksFront+exShowExtendedLinks*/ oItems := oG2antt:Items() h1 := oItems:AddItem("Task 1") oItems:AddBar(h1,"Task","09/20/2006","09/22/2006") h2 := oItems:AddItem("Task 2") oItems:AddBar(h2,"Task","09/26/2006","09/28/2006") oItems:SetProperty("ItemBar",h2,"",257/*exBarSelected*/,.T.) oItems:AddLink("L1",h1,"",h2,"") oItems:SetProperty("Link","L1",12/*exLinkText*/,"L1") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1563 |
How can I enable the extended links feature
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h1,h2,h3 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:DefaultItemHeight := 24 oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:LevelCount := 2 oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,48) oChart:NonworkingDays := 0 oChart:LinksStyle := 0/*exLinkSolid*/ oChart:ShowLinks := 1/*exShowExtendedLinks*/ oItems := oG2antt:Items() h1 := oItems:AddItem("Task 1") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","") h2 := oItems:AddItem("Task 2") oItems:AddBar(h2,"Task","01/02/2001","01/04/2001","") oItems:AddLink("L1",h1,"",h2,"") h3 := oItems:AddItem("Task 3") oItems:AddBar(h3,"Task","01/02/2001","01/04/2001","") oItems:AddLink("L2",h3,"",h2,"") oItems:SchedulePDM(0,"") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1562 |
How do I count all bars in the chart
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oItems := oG2antt:Items() hSummary := oItems:AddItem("Task") oItems:AddBar(hSummary,"Task","01/02/2001","01/05/2001","K1") hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K1") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.1"),"Task","01/03/2001","01/05/2001","K11") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.2"),"Task","01/03/2001","01/05/2001","K12") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K2") hTask := oItems:InsertItem(hTask,,"Task B.1") oItems:AddBar(hTask,"Task","01/05/2001","01/09/2001","K21") oItems:SetProperty("ExpandItem",0,.T.) DevOut( "Count: " ) DevOut( Transform(oItems:ItemBar(0,"<*>",256/*exBarsCount*/),"") ) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1561 |
Is there any property to count the all child bars of a specified item ( all descendents )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oChart:Bars():CallMethod("Copy","Task","CountTask"):SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems := oG2antt:Items() hSummary := oItems:AddItem("Project") oItems:SetProperty("ItemBold",hSummary,.T.) hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"CountTask","01/02/2001","01/05/2001","K1") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.1"),"CountTask","01/03/2001","01/05/2001","K11") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.2"),"CountTask","01/03/2001","01/05/2001","K12") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"CountTask","01/02/2001","01/05/2001","K2") hTask := oItems:InsertItem(hTask,,"Task B.1") oItems:AddBar(hTask,"CountTask","01/05/2001","01/09/2001","K21") oItems:SetProperty("ExpandItem",0,.T.) oItems:DefaultItem := oItems:ItemByIndex(0) DevOut( "Count: " ) DevOut( Transform(oItems:ItemBar(-3,"<*>",256/*exBarsCount*/),"") ) oItems:DefaultItem := 0 oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1560 |
Is there any property to count the child bars of a specified item ( leaf descendents )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oChart:Bars():CallMethod("Copy","Task","CountTask"):SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems := oG2antt:Items() hSummary := oItems:AddItem("Project") oItems:SetProperty("ItemBold",hSummary,.T.) hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K1") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.1"),"CountTask","01/03/2001","01/05/2001","K11") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.2"),"CountTask","01/03/2001","01/05/2001","K12") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K2") hTask := oItems:InsertItem(hTask,,"Task B.1") oItems:AddBar(hTask,"CountTask","01/05/2001","01/09/2001","K21") oItems:SetProperty("ExpandItem",0,.T.) oItems:DefaultItem := oItems:ItemByIndex(0) DevOut( "Count: " ) DevOut( Transform(oItems:ItemBar(-2,"<*>",256/*exBarsCount*/),"") ) oItems:DefaultItem := 0 oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1559 |
Is there any property to count the child bars of a specified item ( direct descendents )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oChart:Bars():CallMethod("Copy","Task","CountTask"):SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems := oG2antt:Items() hSummary := oItems:AddItem("Project") oItems:SetProperty("ItemBold",hSummary,.T.) hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"CountTask","01/02/2001","01/05/2001","K1") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.1"),"Task","01/03/2001","01/05/2001","K11") oItems:AddBar(oItems:InsertItem(hTask,,"Task A.2"),"Task","01/03/2001","01/05/2001","K12") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"CountTask","01/02/2001","01/05/2001","K2") hTask := oItems:InsertItem(hTask,,"Task B.1") oItems:AddBar(hTask,"Task","01/05/2001","01/09/2001","K21") oItems:SetProperty("ExpandItem",0,.T.) oItems:DefaultItem := oItems:ItemByIndex(0) DevOut( "Count: " ) DevOut( Transform(oItems:ItemBar(-1,"<*>",256/*exBarsCount*/),"") ) oItems:DefaultItem := 0 oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1558 |
How can I define all child items to belong to a summary bar (DefineSummaryBars-3)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oItems := oG2antt:Items() hSummary := oItems:AddItem("Summary") oItems:AddBar(hSummary,"Summary","01/02/2001","01/02/2001","") hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K1") hTask := oItems:InsertItem(hTask,,"Task A.1") oItems:AddBar(hTask,"Task","01/03/2001","01/05/2001","K11") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K2") hTask := oItems:InsertItem(hTask,,"Task B.1") oItems:AddBar(hTask,"Task","01/05/2001","01/09/2001","K21") oItems:DefineSummaryBars(hSummary,"",-3,"<K*>") oItems:SetProperty("ExpandItem",0,.T.) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1557 |
Can I define automatically the leaf descendents of the summary bar (DefineSummaryBars-2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oItems := oG2antt:Items() hSummary := oItems:AddItem("Summary") oItems:AddBar(hSummary,"Summary","01/02/2001","01/02/2001","") hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"1Task","01/02/2001","01/05/2001","K1") hTask := oItems:InsertItem(hTask,,"Task A.1") oItems:AddBar(hTask,"Task","01/03/2001","01/05/2001","K11") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"1Task","01/02/2001","01/05/2001","K2") hTask := oItems:InsertItem(hTask,,"Task B.1") oItems:AddBar(hTask,"Task","01/05/2001","01/09/2001","K21") oItems:DefineSummaryBars(hSummary,"",-2,"<K*>") oItems:SetProperty("ExpandItem",0,.T.) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1556 |
How can I assign the childs bars to a summary bar (DefineSummaryBars-1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oItems := oG2antt:Items() hSummary := oItems:AddItem("Summary") oItems:AddBar(hSummary,"Summary","01/02/2001","01/02/2001","") hTask := oItems:InsertItem(hSummary,,"Task A") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001","K1") hTask := oItems:InsertItem(hSummary,,"Task B") oItems:AddBar(hTask,"Task","01/04/2001","01/08/2001","K2") oItems:SetProperty("ExpandItem",hSummary,.T.) oItems:DefineSummaryBars(hSummary,"",-1,"<*>") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1555 |
Is it possible to define a summary bar to include all bars in the chart (DefineSummaryBars-0)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oItems := oG2antt:Items() hSummary := oItems:AddItem("Summary") oItems:AddBar(hSummary,"Summary","01/02/2001","01/02/2001","summary") oItems:AddBar(oItems:AddItem("Task A"),"Task","01/02/2001","01/05/2001","K1") oItems:AddBar(oItems:AddItem("Task B"),"Task","01/06/2001","01/09/2001","K2") oItems:AddBar(oItems:AddItem("Task C"),"Task","01/11/2001","01/14/2001","K3") oItems:DefineSummaryBars(hSummary,"summary",0,"<K*>") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1554 |
Is there any way to "unselect" radio group
PROCEDURE OnDblClick(oG2antt,Shift,X,Y) LOCAL oItems LOCAL h oItems := oG2antt:Items() h := oItems:CellChecked(1234) oItems:SetProperty("CellHasCheckBox",0,h,.T.) oItems:SetProperty("CellState",0,h,0) oItems:SetProperty("CellHasCheckBox",0,h,.F.) RETURN PROCEDURE OnSelectionChanged(oG2antt) LOCAL oItems oItems := oG2antt:Items() oItems:SetProperty("CellState",oItems:FocusItem(),0,1) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:DblClick := {|Shift,X,Y| OnDblClick(oG2antt,Shift,X,Y)} /*Occurs when the user dblclk the left mouse button over an object.*/ oG2antt:SelectionChanged := {|| OnSelectionChanged(oG2antt)} /*Fired after a new item has been selected.*/ oG2antt:MarkSearchColumn := .F. oG2antt:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,128 } ) , .F. )) oG2antt:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. )) oG2antt:Columns():Add("Default") oItems := oG2antt:Items() h := oItems:AddItem("Radio 1") oItems:SetProperty("CellHasRadioButton",h,0,.T.) oItems:SetProperty("CellRadioGroup",h,0,1234) h := oItems:AddItem("Radio 2") oItems:SetProperty("CellHasRadioButton",h,0,.T.) oItems:SetProperty("CellRadioGroup",h,0,1234) oItems:SetProperty("CellState",h,0,1) h := oItems:AddItem("Radio 3") oItems:SetProperty("CellHasRadioButton",h,0,.T.) oItems:SetProperty("CellRadioGroup",h,0,1234) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1553 |
The Column.Alignment property does not seem to work for cells with images in them. What can be done
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oG2antt:TreeColumnIndex := -1 oG2antt:DrawGridLines := -1/*exAllLines*/ oG2antt:HeaderHeight := 24 oG2antt:DefaultItemHeight := 24 oColumn := oG2antt:Columns():Add("Image") oColumn:AllowSizing := .F. oColumn:Width := 32 oColumn:HTMLCaption := "<img>1</img>" oColumn:HeaderAlignment := 1/*CenterAlignment*/ oColumn:Alignment := 1/*CenterAlignment*/ oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oG2antt:Columns():Add("Rest") oItems := oG2antt:Items() oItems:AddItem("<img>1</img>") oItems:AddItem("<img>2</img>") oItems:AddItem("<img>3</img>") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1552 |
Is there any way to determine in a bar would overlay another bar or to not allow this and get some error indication
PROCEDURE OnBarResize(oG2antt,Item,Key) oG2antt:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oBar,oBar1 LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BarResize := {|Item,Key| OnBarResize(oG2antt,Item,Key)} /*Occurs when a bar is moved or resized.*/ oG2antt:BeginUpdate() oG2antt:DefaultItemHeight := 22 oG2antt:Columns():Add("InterectBars") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,48) oChart:FirstVisibleDate := "01/01/2001" oBar := oChart:Bars:Item("Task") oBar:OverlaidType := 2/*exOverlaidBarsIntersect*/ oBar:SetProperty("Overlaid",2/*exOverlaidBarsIntersect*/,"ERROR") oBar1 := oChart:Bars():Add("ERROR") oBar1:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oBar1:Pattern := 1/*exPatternSolid*/ oBar1:Height := 7 oItems := oG2antt:Items() h := oItems:AddItem("") oItems:AddBar(h,"Task","01/02/2001","01/04/2001","A","A") oItems:AddBar(h,"Task","01/03/2001","01/05/2001","B","B") oItems:SetProperty("CellValue",h,0,oItems:IntersectBars(h,"A",h,"B")) h := oItems:AddItem("") oItems:AddBar(h,"Task","01/06/2001","01/09/2001","A","A") oItems:AddBar(h,"Task","01/10/2001","01/13/2001","B","B") oItems:SetProperty("CellValue",h,0,oItems:IntersectBars(h,"A",h,"B")) h := oItems:AddItem("") oItems:AddBar(h,"Task","01/06/2001","01/09/2001","B","B") oItems:AddBar(h,"Task","01/10/2001","01/13/2001","A","A") oItems:SetProperty("CellValue",h,0,oItems:IntersectBars(h,"A",h,"B")) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1551 |
Is it possible to change the font size of the header compared to that of the control. I would like to make the font of the headers smaller
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:HeaderHeight := 32 oColumns := oG2antt:Columns() oColumn := oColumns:Add("ID") oColumn:HTMLCaption := "<font ;16>ID" oColumn:Width := 32 oColumn:AllowSizing := .F. oColumns:Add("Task"):HTMLCaption := "<font ;16>Task" oG2antt:FocusColumnIndex := 1 oG2antt:ShowFocusRect := .F. oG2antt:Chart():SetProperty("PaneWidth",.T.,0) oItems := oG2antt:Items() oItems:SetProperty("CellValue",oItems:AddItem(1),1,"Task A") oItems:SetProperty("CellValue",oItems:AddItem(2),1,"Task B") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1550 |
How can I create items and bars at runtime
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oColumn LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oColumns := oG2antt:Columns() oColumn := oColumns:Add("ID") oColumn:FormatColumn := "1 index ''" oColumn:Width := 32 oColumn:AllowSizing := .F. oColumns:Add("Task"):Editor():EditType := 1/*EditType*/ oG2antt:FocusColumnIndex := 1 oG2antt:ShowFocusRect := .F. oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oChart:AllowCreateBar := 1/*exCreateBarAuto*/ oG2antt:Template := "Chart.Bars(" + CHR(34) + "Task" + CHR(34) + "){Def(3) = " + CHR(34) + "<%=%C1%>" + CHR(34) + ";Def(4)=18}" oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1549 |
How can I a group summary bar with a task bar, so when the summary bar changes the task bar will move accordingly
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL hSummary,hTask oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oItems := oG2antt:Items() hSummary := oItems:AddItem("Summary") oItems:AddBar(hSummary,"Summary","01/02/2001","01/02/2001") hTask := oItems:AddItem("Task A") oItems:AddBar(hTask,"Task","01/02/2001","01/05/2001") oItems:DefineSummaryBars(hSummary,"",hTask,"") hTask := oItems:AddItem("Task B") oItems:AddBar(hTask,"Task","01/04/2001","01/08/2001") oItems:DefineSummaryBars(hSummary,"",hTask,"") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1548 |
How can I show the bars using a solid color, with no pattern inside
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:DefaultItemHeight := 24 oG2antt:DrawGridLines := -1/*exAllLines*/ oChart := oG2antt:Chart() oChart:DrawGridLines := -1/*exAllLines*/ oChart:NonworkingDays := 0 oChart:SetProperty("PaneWidth",.F.,128) oChart:FirstVisibleDate := "01/01/2001" oChart:Bars:Item("Task"):Pattern := 1/*exPatternSolid*/ oG2antt:Columns():Add("Column") oItems := oG2antt:Items() h := oItems:AddItem("Solid A") oItems:AddBar(h,"Task","01/02/2001","01/04/2001","A") oItems:AddBar(h,"Task","01/05/2001","01/07/2001","B") oItems:SetProperty("ItemBar",h,"B",33/*exBarColor*/,255) oItems:AddBar(h,"Task","01/08/2001","01/10/2001","C") oItems:SetProperty("ItemBar",h,"C",33/*exBarColor*/,65280) h := oItems:AddItem("Solid B") oItems:AddBar(h,"Task","01/02/2001","01/04/2001","A") oItems:SetProperty("ItemBar",h,"A",7/*exBarBackColor*/,255) oItems:AddBar(h,"Task","01/05/2001","01/07/2001","B") oItems:SetProperty("ItemBar",h,"B",33/*exBarColor*/,255) oItems:SetProperty("ItemBar",h,"B",7/*exBarBackColor*/,65280) oItems:AddBar(h,"Task","01/08/2001","01/10/2001","C") oItems:SetProperty("ItemBar",h,"C",33/*exBarColor*/,16711680) oItems:SetProperty("ItemBar",h,"C",7/*exBarBackColor*/,16711935) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1547 |
Basically what I am trying to do is replicate MS Project look & feel. Is that possible
|
1546 |
Is there anyway to change the style of the splitter which separates the list/chart
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn") oG2antt:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x1000000) oG2antt:SetProperty("Background",18/*exSplitBar*/,0x1ff0000) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1545 |
Does your control support subscript or superscript, in HTML captions
|
1544 |
I have noticed that the column's header is changed once the cursor hovers it. Is it possible to change that visual appearance
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn") oColumns := oG2antt:Columns() oColumns:Add("Column 1") oColumns:Add("Column 2") oG2antt:SetProperty("BackColorHeader",0x1000000) oG2antt:SetProperty("Background",32/*exCursorHoverColumn*/,0x12d86ff) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1543 |
Is it possible to change the visual appearance of the columns selector/floating bar(3)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ColumnAutoResize := .F. oColumns := oG2antt:Columns() oColumns:Add("Column 1") oColumns:Add("Column 2"):Visible := .F. oG2antt:VisualAppearance():Add(2,"c:\exontrol\images\normal.ebn") oG2antt:VisualAppearance():Add(3,"c:\exontrol\images\pushed.ebn") oG2antt:SetProperty("Background",92/*exColumnsFloatAppearance*/,0x2000000) oG2antt:SetProperty("Background",87/*exColumnsFloatBackColor*/,0x3000000) oG2antt:SetProperty("Background",93/*exColumnsFloatCaptionBackColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 246,245,240 } ) , .F. )) oG2antt:ColumnsFloatBarVisible := -1/*exColumnsFloatBarVisibleIncludeHiddenColumns*/ oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1542 |
Is it possible to change the visual appearance of the columns selector/floating bar(2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ColumnAutoResize := .F. oColumns := oG2antt:Columns() oColumns:Add("Column 1") oColumns:Add("Column 2"):Visible := .F. oG2antt:VisualAppearance():Add(3,"c:\exontrol\images\pushed.ebn") oG2antt:SetProperty("Background",87/*exColumnsFloatBackColor*/,0x3000000) oG2antt:ColumnsFloatBarVisible := -1/*exColumnsFloatBarVisibleIncludeHiddenColumns*/ oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1541 |
Is it possible to change the visual appearance of the columns selector/floating bar(1)
|
1540 |
I am using the ColumnsFloatBarVisible property on True, but still not able to add any column on that list
|
1539 |
Is it possible to list a column to columns selector/floating bar, but still user can use it
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ColumnAutoResize := .F. oColumns := oG2antt:Columns() oColumns:Add("Column 1") oColumns:Add("Column 2"):Visible := .F. oColumn := oColumns:Add("Column 3") oColumn:Visible := .F. oColumn:Enabled := .F. oG2antt:ColumnsFloatBarVisible := -1/*exColumnsFloatBarVisibleIncludeHiddenColumns*/ oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1538 |
How can I prevent a specific column not to be listed in the columns selector/floating bar
|
1537 |
Is it possible to change the "Columns" caption being shown in the columns selector/floating bar
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ColumnAutoResize := .F. oColumns := oG2antt:Columns() oColumns:Add("Column 1") oColumns:Add("Column 2"):Visible := .F. oG2antt:SetProperty("Description",26/*exColumnsFloatBar*/,"Hidden Columns") oG2antt:ColumnsFloatBarVisible := -1/*exColumnsFloatBarVisibleIncludeHiddenColumns*/ oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1536 |
How can I show the columns selector, so the user can drag and drop columns to the view
|
1535 |
The column's header is changed while the cursor hovers it. Is it possible to prevent that
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oColumns := oG2antt:Columns() oColumns:Add("Column 1") oColumns:Add("Column 2") oG2antt:SetProperty("Background",32/*exCursorHoverColumn*/,-1) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1534 |
Is there any property I can save and restore automatically the current setting, column position, size, and so on (2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Column") oItems := oG2antt:Items() oItems:AddItem("Item 1") oItems:AddItem("Item 2") oItems:AddItem("Item 3") oG2antt:Layout := "Select=" + CHR(34) + "0" + CHR(34) + ";SingleSort=" + CHR(34) + "C0:2" + CHR(34) + ";Columns=1" oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1533 |
Is there any property I can save and restore automatically the current setting, column position, size, and so on (1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Column") oItems := oG2antt:Items() oItems:AddItem("Item 1") oItems:AddItem("Item 2") oItems:AddItem("Item 3") oG2antt:Layout := "gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujMbjsfkMFk0YhkQgUOjUEl8gjcGO0ok8KMULjEaGMcj08kQAO8oMkTNEtGwAGQAqc7gUlhh1ABtAEsk9GpEfhElgVcsMupNlnlonlaAFcr0shUsp8QPEtnVJqJhmcIhUMh0QiU5sYAqMngUSuEMw07k8Qv0SgVRrNEuVflF2jF5x9JyNEm0TjQijemyE0jE3t+YruauoAu4Az1qj9BzRn0UzksSnAA0xDjY6qnAw8OiUQ0dwzN0zWz2t7j8/xURAGNvWH6k8xlEhklhEI0O/6QAgI=" oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1532 |
How do I arrange my columns on multiple levels
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:ColumnAutoResize := .F. oG2antt:DrawGridLines := -1/*exAllLines*/ oColumns := oG2antt:Columns() oColumn := oColumns:Add("C0") oColumn:ExpandColumns := "1,2" oColumn:DisplayExpandButton := .F. oColumns:Add("C1") oColumns:Add("C2") oColumns:Add("C3") oColumn1 := oColumns:Add("C4") oColumn1:ExpandColumns := "5,6" oColumn1:DisplayExpandButton := .F. oColumns:Add("C5") oColumn2 := oColumns:Add("C6") oColumn2:ExpandColumns := "6,7" oColumn2:DisplayExpandButton := .F. oColumns:Add("C7") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1531 |
Does your control support expandable header or columns, so I can arrange it on multiple levels
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1 LOCAL oColumns oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:DrawGridLines := -1/*exAllLines*/ oG2antt:SetProperty("BackColorLevelHeader",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. )) oColumns := oG2antt:Columns() oColumn := oColumns:Add("Photo") oColumn:AllowSizing := .F. oColumn:Width := 32 oColumns:Add("Personal Info") oColumns:Add("Title") oColumns:Add("Name") oColumns:Add("First") oColumns:Add("Last") oColumns:Add("Address") oColumns:Item("Personal Info"):ExpandColumns := "2,3" oColumn1 := oColumns:Item("Name") oColumn1:ExpandColumns := "4,5" oColumn1:Expanded := .F. oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1530 |
I need a Day/Hour Display where the Bars should be created/resized in a 15 Minute Scale in a normal View, but in a 5 Minute Scale when on an InsideZoom. How can I do that
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oInsideZoomFormat LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,128) oChart:AllowCreateBar := 1/*exCreateBarAuto*/ oChart:UnitWidth := 50 oChart:FirstVisibleDate := "01/01/2013" oChart:LevelCount := 2 oChart:Level(0):Label := 4096 oChart:Level(1):Label := "<%h%>:<%nn%>" oChart:Level(1):Unit := 1048576/*exMinute*/ oChart:Level(1):Count := 60 oChart:ResizeUnitScale := 1048576/*exMinute*/ oChart:ResizeUnitCount := 15 oChart:AllowInsideZoom := .T. oInsideZoomFormat := oChart:DefaultInsideZoomFormat() oInsideZoomFormat:InsideCount := 5 oInsideZoomFormat:InsideUnit := 1048576/*exMinute*/ oInsideZoomFormat:InsideLabel := "<%nn%>" oItems := oG2antt:Items() oItems:AddItem("Item") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1529 |
Can I change the format of date to be shown in the control
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Chart():SetProperty("PaneWidth",.T.,0) oColumns := oG2antt:Columns() oColumns:Add("Default") oColumn := oColumns:Add("Format.1") oColumn:ComputedField := "%0" oColumn:FormatColumn := "dateF(value) replace `/` with `-`" oColumn1 := oColumns:Add("Format.2") oColumn1:ComputedField := "%0" oColumn1:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn1:FormatColumn := "`<b>`+ shortdate(value) + `</b> ` + timeF(value)" oColumn2 := oColumns:Add("Format.3") oColumn2:ComputedField := "%0" oColumn2:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn2:FormatColumn := "` <b>`+ ( weekday(value) case ( 0 : `Su`; 1 : `Mo`; 2 : `Tu`; 3 : `We`; 4 : `Th`; 5 : `Fr`; 6 : `Sa`) ) + `</b> ` + ( dateF(value) replace `/` with `-` )" oItems := oG2antt:Items() oItems:AddItem("01/01/2001 10:00:00") oItems:AddItem("01/02/2001 10:00:00") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1528 |
How can I display a text/caption on the chart part of the control
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL oNote,oNote1,oNote2 LOCAL oNotes LOCAL h1 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:AntiAliasing := .T. oChart := oG2antt:Chart() oChart:FirstVisibleDate := "12/26/2000" oChart:SetProperty("PaneWidth",.F.,128) oG2antt:Columns():Add("Column") oItems := oG2antt:Items() h1 := oItems:AddItem("Item 1") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","A") oItems:SetProperty("ItemBar",h1,"A",3/*exBarCaption*/,"text") h1 := oItems:AddItem("Item 2") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","A") oItems:SetProperty("ItemBar",h1,"A",3/*exBarCaption*/,"text outside associated with a bar") oItems:SetProperty("ItemBar",h1,"A",4/*exBarHAlignCaption*/,18) h1 := oItems:AddItem("Item 3") oItems:AddBar(h1,"","01/02/2001","01/02/2001","A") oItems:SetProperty("ItemBar",h1,"A",3/*exBarCaption*/,"text with no bar associated") h1 := oItems:AddItem("Item 4") oItems:AddBar(h1,"Task","01/02/2001","01/05/2001","A") h1 := oItems:AddItem("Item 5") h1 := oItems:AddItem("Item 6") h1 := oItems:AddItem("Item 7") h1 := oItems:AddItem("Item 8") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","A") h1 := oItems:AddItem("Item 8") oItems:AddBar(h1,"Task","01/02/2001","01/06/2001","A") oNotes := oG2antt:Chart():Notes() oNotes:Add("1S",oG2antt:Items:ItemByIndex(3),"A","<font ;6>Movable Note Inside the Bar"):SetProperty("PartCanMove",0/*exNoteStart*/,.T.) oNotes:Add("AK",oG2antt:Items:ItemByIndex(6),"01/06/2001","Note associated with a date: <%mm%>/<%dd%>/<%yyyy%>") oNote := oNotes:Add("2S",oG2antt:Items:ItemByIndex(7),"A","<font ;6>Fixed Note Left") oNote:ShowLink := 0/*exNoteLinkHidden*/ oNote:SetProperty("PartVOffset",1/*exNoteEnd*/,0) oNote:SetProperty("PartHOffset",0/*exNoteStart*/,-32) oNote:SetProperty("PartShadow",1/*exNoteEnd*/,.F.) oNote:SetProperty("PartBackColor",1/*exNoteEnd*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,0 } ) , .F. )) oNote1 := oNotes:Add("3S",oG2antt:Items:ItemByIndex(8),"A","Start<br><%mmm%> <%d%> <%yyyy%>") oNote1:SetProperty("PartCanMove",1/*exNoteEnd*/,.T.) oNote1:SetProperty("PartHOffset",1/*exNoteEnd*/,-64) oNote1:LinkStyle := 2/*exLinkDot*/ oNote1:LinkWidth := 2 oNote1:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. )) oNote2 := oNotes:Add("3F",oG2antt:Items:ItemByIndex(8),"A","End<br><%mmm%> <%d%> <%yyyy%>") oNote2:RelativePosition := 1 oNote2:SetProperty("PartCanMove",1/*exNoteEnd*/,.T.) oNote2:LinkStyle := 2/*exLinkDot*/ oNote2:LinkWidth := 2 oNote2:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. )) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1527 |
Which is the best way of change Bar parent
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oItems LOCAL h1,h2,h3 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:Debug := .T. oG2antt:Chart():FirstVisibleDate := "01/01/2001" oG2antt:Columns():Add("Column") oItems := oG2antt:Items() h1 := oItems:AddItem("Item 1") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","A") h2 := oItems:AddItem("Item 2") oItems:AddBar(h2,"Task","01/03/2001","01/05/2001","B") h3 := oItems:AddItem("Item 3") oItems:AddBar(h3,"Task","01/05/2001","01/07/2001","A") oItems:SetProperty("ItemBar",h3,"A",512/*exBarParent*/,h1) DevOut( "The Bar A of H3 fails to change the parent to H1 as it has already a bar named A" ) oItems:SetProperty("ItemBar",h3,"A",512/*exBarParent*/,h2) DevOut( "The Bar A of H3 can be moved to H2, as it contains no bars with the key A" ) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1526 |
Is it possible to have a bar in bar
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oAppearance LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oAppearance := oG2antt:VisualAppearance() oAppearance:Add(1,"gBFLBCJwBAEHhEJAEGg4BS4Dg6AADACAxRDAMgBQKAAzQFAYbBmGaGAAGIZhQgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDKAkRRdDSOYDmGQYDiCIoRShOMIjRLUXxtDYEIRkSZYJAKCTtBwJAAURRULR6ACUYDnSRqGj6CQKRqEVBSLAdKyXJKvaZhGIRSDUJZkWZEIyjBY8EzXNqrIDoGKqYgOQ4XV5TFgxPR9IyhEAaLrleT5TjOII/RpOEpYXSVHxFRAAAYhG4wABCXAAXjYF5Udhlfx3FCvMbqeCcSgOWoDZZRFa0PjVQQtNC4IitGzrMqrNaDSBlGigBauKw3TKlMzye7repOA5+aJGVz7VgfGz7EDjKg0GJcgMex3lOZB5jgPYHHMaYxjeRBilWbZNG4B49l2do6hkfIhECUhjDoHROEYUYMgEbQMCEEx+lGIY0CQUQJHYGoUgQGBFkgB4FmkOINiMbBrAwQoxngSQMCCYJAG8DYCkM" +; "ZJNDOAhAHCbYGGGOBqByB5hiMcJSDORhwjQKoEkKSIgHoEZEDgWJOECSwyGSGwjkWUJUh8HADiiXA6CSRgQliFwcgcSICB2EJkCKDIAB4CAxDgMoOiOIkfA4CoiDCDhAmUEg4hEF4DHKCByA8JYpHIWwbAMIIuC6EIkCiOBwA2QpSHQbgOkoIZMD2GxmnmOhVhUJQiEwYAOAoQZQD6HhnjmaIfBuQ5BlQPQLiMEhuEKIRHmEKA7h+Q5ChQdQPmiahCg+JBnDAAhVCVPpoicHYEAobodicKZqHqGAO0YNA0ikQxKg6IYnAqAZcEGKxqnqOowiUZRSFwYwPAqIZkEOLhrjqaIqB4BAqn6QYwCwKwWkSMZECKLo6jKBA7DKTItWEZBlA8SpRmwRY1G0exYi0HoEEsbpdjcLZrgaYI4kQQo6laOYEFuIpojQCJiHAZgPksAZ0EePBvDuSp0j2bxrmadY+m8QpGnKP4EHwAwAjsCZxiQQQtAgAQrAiQowhKUB" +; "/BIcJsEMD5EHETBPBYEhLFwJwZBKMY8G6bAoEaIQMjcIIEkzUZJAscgEEuShyjyKwskucpskQSwuDITJQEyTYzGuMIjBsBBCmiBATjObQDD+UB0E0DxGlCNINASO5PnSMQ7E2Uxu3CbQRguUgYFCVR1H0WxYC2R5xDSDgVWiXA8AyNggksXwPDWQQ3FgL4IHERxsluNpdj6bAqAacQckAEQBQWxfDzF4BUYYqBKhEEQNMDgPQGhFGIDgVwKR3iiCiIIIgig+BfA2MYOLtAqA4ESCYDIFgVDyGEKkPAQgFBDDwG4DYnQzg5GiDIOAZw3hCDoA8MQIA9PeGEHkRIyx6jiOMEoTAxRMhoCeIwUQKSbCKH6NgV43AECyFeEkEQdBTAxC0FESQYhgB+DGPcTwYBXBZEeCIOoKg5j6EIJAbQNxJCjCAMAJwDRxghA4DEBYpk1hnHwH4DIxg3AaFGGgMQFwHhBHgGkewhhCDIHMDkDY0AlAGEAIAgIA=") oAppearance:Add(2,"c:\exontrol\images\normal.ebn") oAppearance:Add(3,"CP:2 2 -4 2 4") oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,256) oChart:LevelCount := 2 oChart:FirstVisibleDate := "01/01/2001" oG2antt:Columns():Add("Info") oItems := oG2antt:Items() h := oItems:AddItem("Range Moveable Frame") oItems:AddBar(h,"Task","01/04/2001","01/08/2001","F") oItems:SetProperty("ItemBar",h,"F",6/*exBarToolTip*/,"This bar can be moved inside the displayed range.") oItems:SetProperty("ItemBar",h,"F",22/*exBarMinStart*/,"01/02/2001") oItems:SetProperty("ItemBar",h,"F",25/*exBarMaxEnd*/,"01/18/2001") oItems:SetProperty("ItemBar",h,"F",26/*exBarShowRange*/,32) oItems:SetProperty("ItemBar",h,"F",27/*exBarShowRangeTransparent*/,90) h := oItems:AddItem("Range Moveable Pattern") oItems:AddBar(h,"Task","01/06/2001","01/10/2001","F") oItems:SetProperty("ItemBar",h,"F",6/*exBarToolTip*/,"This bar can be moved inside the displayed range.") oItems:SetProperty("ItemBar",h,"F",22/*exBarMinStart*/,"01/02/2001") oItems:SetProperty("ItemBar",h,"F",25/*exBarMaxEnd*/,"01/18/2001") oItems:SetProperty("ItemBar",h,"F",26/*exBarShowRange*/,1) oItems:SetProperty("ItemBar",h,"F",27/*exBarShowRangeTransparent*/,90) h := oItems:AddItem("Range Moveable EBN Transparent") oItems:AddBar(h,"Task","01/08/2001","01/12/2001","F") oItems:SetProperty("ItemBar",h,"F",6/*exBarToolTip*/,"This bar can be moved inside the displayed range.") oItems:SetProperty("ItemBar",h,"F",22/*exBarMinStart*/,"01/02/2001") oItems:SetProperty("ItemBar",h,"F",25/*exBarMaxEnd*/,"01/18/2001") oItems:SetProperty("ItemBar",h,"F",26/*exBarShowRange*/,16777216) oItems:SetProperty("ItemBar",h,"F",27/*exBarShowRangeTransparent*/,50) h := oItems:AddItem("Range Moveable EBN Opaque 1") oItems:SetProperty("ItemHeight",h,24) oItems:AddBar(h,"Task","01/10/2001","01/14/2001","F") oItems:SetProperty("ItemBar",h,"F",6/*exBarToolTip*/,"This bar can be moved inside the displayed range.") oItems:SetProperty("ItemBar",h,"F",22/*exBarMinStart*/,"01/02/2001") oItems:SetProperty("ItemBar",h,"F",25/*exBarMaxEnd*/,"01/18/2001") oItems:SetProperty("ItemBar",h,"F",26/*exBarShowRange*/,33554432) h := oItems:AddItem("Range Moveable EBN Opaque 2") oItems:SetProperty("ItemHeight",h,24) oItems:AddBar(h,"Task","01/12/2001","01/16/2001","F") oItems:SetProperty("ItemBar",h,"F",6/*exBarToolTip*/,"This bar can be moved inside the displayed range.") oItems:SetProperty("ItemBar",h,"F",22/*exBarMinStart*/,"01/02/2001") oItems:SetProperty("ItemBar",h,"F",25/*exBarMaxEnd*/,"01/18/2001") oItems:SetProperty("ItemBar",h,"F",26/*exBarShowRange*/,50331648) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1525 |
How can I show vertical lines using the SelectDate
|
1524 |
How can I show vertical lines using the SelectDate
|
1523 |
How can I find if there is any filter applied to the control
PROCEDURE OnFilterChange(oG2antt) DevOut( "If negative, the filter is present, else not" ) DevOut( Transform(oG2antt:Items:VisibleItemCount(),"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:FilterChange := {|| OnFilterChange(oG2antt)} /*Occurs when the filter was changed.*/ oG2antt:BeginUpdate() oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/ oG2antt:TreeColumnIndex := -1 oG2antt:FilterInclude := 4/*exMatchingItemsOnly*/ oColumn := oG2antt:Columns():Add("Column") oColumn:DisplayFilterButton := .T. oColumn:FilterType := 240/*exFilter*/ oColumn:Filter := "C1" oItems := oG2antt:Items() h := oItems:AddItem("R1") oItems:InsertItem(h,,"C1") oItems:InsertItem(h,,"C2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("R2") oItems:InsertItem(h,,"C1") oItems:InsertItem(h,,"C2") oG2antt:ApplyFilter() oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1522 |
How can I prevent showing the lines for the hierarchy while using the exMatchingItemsOnly option
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/ oG2antt:TreeColumnIndex := -1 oG2antt:FilterInclude := 4/*exMatchingItemsOnly*/ oColumn := oG2antt:Columns():Add("Column") oColumn:DisplayFilterButton := .T. oColumn:FilterType := 240/*exFilter*/ oColumn:Filter := "C1|C2" oItems := oG2antt:Items() h := oItems:AddItem("R1") oItems:InsertItem(h,,"C1") oItems:InsertItem(h,,"C2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("R2") oItems:InsertItem(h,,"C1") oItems:InsertItem(h,,"C2") oG2antt:ApplyFilter() oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1521 |
Is there any method to get only the matched items and not the items with his parent
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:LinesAtRoot := -1/*exLinesAtRoot*/ oG2antt:FilterInclude := 4/*exMatchingItemsOnly*/ oColumn := oG2antt:Columns():Add("Column") oColumn:DisplayFilterButton := .T. oColumn:FilterType := 240/*exFilter*/ oColumn:Filter := "C1|C2" oItems := oG2antt:Items() h := oItems:AddItem("R1") oItems:InsertItem(h,,"C1") oItems:InsertItem(h,,"C2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("R2") oItems:InsertItem(h,,"C1") oItems:InsertItem(h,,"C2") oG2antt:ApplyFilter() oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1520 |
Is it possible to specify a working day exception that would override the non-working day pattern
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Pattern") oChart := oG2antt:Chart() oChart:FirstWeekDay := 1/*exMonday*/ oChart:FirstVisibleDate := "01/24/2008" oChart:SetProperty("PaneWidth",.F.,52) oChart:LevelCount := 2 oItems := oG2antt:Items() oItems:AddItem("Default") oItems:SetProperty("ItemNonworkingUnits",oItems:AddItem("1/26/2008"),.F.,"weekday(value) case (default:0 ; 0:1; 6:(value != #1/26/2008#))") oItems:SetProperty("ItemNonworkingUnits",oItems:AddItem("1/27/2008"),.F.,"weekday(value) case (default:0 ; 0:(value != #1/27/2008#); 6:1)") oItems:SetProperty("ItemNonworkingUnits",oItems:AddItem("Sundays"),.F.,"weekday(value) = 0") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1519 |
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area
|
1518 |
Is it possible to associate an extra frame, border, EBN to the bar/task
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oAppearance LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oAppearance := oG2antt:VisualAppearance() oAppearance:Add(1,"gBFLBCJwBAEHhEJAEGg4BNACg6AADACAxRDAMgBQKAAzQFAYbhsGCGAAGEZBQgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDEAkRRdDSOYDmGQYDiCIoRShOMaTVJ8bQ2ASEaAmWK3boUAJFPrFc6ABJMZRRISXJABeKwRoGJYaUhRdDRNCIZBqEqua7iEZRQqCCZkWZPNTRVScByhF61IDpWjKLDKJJwXBMcxyBL0NRxFTAKawGoYbq0AJQVTQcZPVhgAYYfSlMDuOB5Gq+G5SQjhWIgBjde4dRrHYrsGyQAp7JJoWLZMQyFIFIYNTS8LgpPI6LyyP5rABhWw5PiUVyfWTMdwzPatbyKHJicbpepWPxcNYtNzcNb3SAbn+KgAmqP5yDiIAACIEhQDSGJOgcU4RhQYwgFUQwIESXxEGgbQJBQQhzHmUAAGILh0lWbpEGIIQQHuegaAaoRYBUBYBCgFAOAOQJgC4CgCCCQAUAQARACgRZFEa3ogCc" +; "CICDCDZ9AeH5wGgFoHmAUBIA6CJgiALgMAIABYiYER+BuMIyC4CZjAcYgygyYxIlYNoNBGMJGDoCximiXg+g+Yx0G0DgNiOIJGECEZkgQbA7A8A5JA4SITmOZBsEGFJDkkLhQhXOItBYEZEGEHBCBARApGIYh1EAaIoAMQIEkENBNBGZpJg4YgCGcAAaGUAAFCmVhqBMZppGADQDACQAmAwAAFgoBh1BSJ4ZFwEEdHmcFmgWag2gEFhoFlINYkoHAQAABhKGQX4jGkGQ8BiJ5BDqBAABqKl1GSJxkgAcoqAYAR3lQcIrkaOoSiiEZCBCBAgiqAaJHaLpHBqQoliaBZxHwWYwkUQRMFQExEmENBJBIRIBAgQwQkOYJ0D4DhDgCYAzjWQpgjwLgKi2QIWl4CACADeofC4SpsHcHArlqRBqBkbpLAaQoxAUQRQE6PLoCaT40AOYJ6lWNdXlAL4/m2QIql4CRAAQBCAg=") oAppearance:Add(2,"CP:1 -4 -4 4 4") oG2antt:Columns():Add("Task") oG2antt:DrawGridLines := -1/*exAllLines*/ oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,128) oChart:DrawGridLines := -1/*exAllLines*/ oItems := oG2antt:Items() oItems:AddBar(oItems:AddItem("Task"),"Task","01/02/2001","01/05/2001","K1") h := oItems:AddItem("Task/ EBN Frame") oItems:SetProperty("ItemHeight",h,32) oItems:AddBar(h,"Task","01/03/2001","01/15/2001","K2") oItems:SetProperty("ItemBar",h,"K2",51/*exBarFrameColor*/,33554432) h := oItems:AddItem("Task/ EBN Frame") oItems:SetProperty("ItemHeight",h,32) oItems:AddBar(h,"Task","01/03/2001","01/15/2001","K2") oItems:SetProperty("ItemBar",h,"K2",51/*exBarFrameColor*/,50331392) oItems:AddBar(oItems:AddItem("Task"),"Task","01/02/2001","01/05/2001","K3") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1517 |
Is it possible to automatically display the working days duration in a column
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oColumn,oColumn1 LOCAL oColumns LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oColumns := oG2antt:Columns() oColumns:Add("Tasks") oColumn := oColumns:Add("Duration") oColumn:SetProperty("Def",18/*exCellValueToItemBarProperty*/,513) oColumn:SetProperty("Def",19/*exCellValueToItemBarKey*/,"A") oColumn1 := oColumns:Add("Working") oColumn1:SetProperty("Def",18/*exCellValueToItemBarProperty*/,258) oColumn1:SetProperty("Def",19/*exCellValueToItemBarKey*/,"A") oG2antt:Items():AllowCellValueToItemBar := .T. oChart := oG2antt:Chart() oChart:SetProperty("PaneWidth",.F.,256) oChart:FirstVisibleDate := "01/03/2002" oChart:LevelCount := 2 oItems := oG2antt:Items() h := oItems:AddItem("Task 1") oItems:AddBar(h,"Task","01/04/2002","01/08/2002","A") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1516 |
How can I apply colors to columns section of the control based on properties of the displaying bars
PROCEDURE OnBarResize(oG2antt,Item,Key) oG2antt:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oColumn,oColumn1 LOCAL oConditionalFormat LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BarResize := {|Item,Key| OnBarResize(oG2antt,Item,Key)} /*Occurs when a bar is moved or resized.*/ oG2antt:BeginUpdate() oColumn := oG2antt:Columns():Add("<fgcolor=FF0000>Tasks > 2 days") oColumn:HTMLCaption := oColumn:Caption() oColumn1 := oG2antt:Columns():Add("PropertyBar") oColumn1:Visible := .F. oColumn1:SetProperty("Def",19/*exCellValueToItemBarKey*/,"") oColumn1:SetProperty("Def",18/*exCellValueToItemBarProperty*/,513) oG2antt:Items():AllowCellValueToItemBar := .T. oChart := oG2antt:Chart() oChart:LevelCount := 2 oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,96) oChart:NonworkingDays := 0 oConditionalFormat := oG2antt:ConditionalFormats():Add("%1 > 2") oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oConditionalFormat:Bold := .T. oG2antt:SetProperty("SelBackColor",oG2antt:BackColor()) oG2antt:SetProperty("SelForeColor",oG2antt:ForeColor()) oItems := oG2antt:Items() oItems:AddBar(oItems:AddItem("Task 1"),"Task","01/02/2001","01/04/2001","") oItems:AddBar(oItems:AddItem("Task 2"),"Task","01/04/2001","01/07/2001","") oItems:AddBar(oItems:AddItem("Task 1"),"Task","01/02/2001","01/04/2001","") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1515 |
Is it possible to update the colors on columns caption to highlight the critical path ( CPM )
PROCEDURE OnBarResize(oG2antt,Item,Key) oG2antt:Items():SchedulePDM(Item,Key) oG2antt:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oColumn LOCAL oConditionalFormat LOCAL oItems LOCAL h1,h2,h3,h4 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BarResize := {|Item,Key| OnBarResize(oG2antt,Item,Key)} /*Occurs when a bar is moved or resized.*/ oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oColumn := oG2antt:Columns():Add("PropertyBar") oColumn:Visible := .F. oColumn:SetProperty("Def",19/*exCellValueToItemBarKey*/,"") oColumn:SetProperty("Def",18/*exCellValueToItemBarProperty*/,269) oG2antt:Items():AllowCellValueToItemBar := .T. oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,48) oChart:NonworkingDays := 0 oConditionalFormat := oG2antt:ConditionalFormats():Add("%1 != 0") oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oConditionalFormat:Bold := .T. oG2antt:SetProperty("SelBackColor",oG2antt:BackColor()) oG2antt:SetProperty("SelForeColor",oG2antt:ForeColor()) oItems := oG2antt:Items() h1 := oItems:AddItem("Task 1") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","") h2 := oItems:AddItem("Task 2") oItems:AddBar(h2,"Task","01/02/2001","01/04/2001","") oItems:AddLink("L1",h1,"",h2,"") h3 := oItems:AddItem("Task 3") oItems:AddBar(h3,"Task","01/02/2001","01/04/2001","") oItems:AddLink("L2",h2,"",h3,"") h4 := oItems:AddItem("Task 3") oItems:AddBar(h4,"Task","01/02/2001","01/03/2001","") oItems:AddLink("L3",h2,"",h4,"") oItems:SetProperty("DefSchedulePDM",5/*exPDMCriticalPathBarColor*/,255) oItems:SetProperty("DefSchedulePDM",7/*exPDMCriticalPathLinkColor*/,255) oItems:SchedulePDM(0,"") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1514 |
I am using the AddShapeCorner to define icon-bars. Is it possible to define with a different color
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oBar,oBar1,oBar2 LOCAL oBars LOCAL oChart LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,128) oBars := oChart:Bars() oBars:AddShapeCorner(12345,1) oBar := oBars:CallMethod("Copy","Milestone","Original") oBar:StartShape := 12345/*0x3020+exShapeIconVBar+exShapeIconRight*/ oBar:SetProperty("StartColor",-1) oBar1 := oBars:CallMethod("Copy","Milestone","Red") oBar1:StartShape := 12345/*0x3020+exShapeIconVBar+exShapeIconRight*/ oBar1:SetProperty("StartColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oBar2 := oBars:CallMethod("Copy","Milestone","Green") oBar2:StartShape := 12345/*0x3020+exShapeIconVBar+exShapeIconRight*/ oBar2:SetProperty("StartColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oG2antt:Columns():Add("Column") oItems := oG2antt:Items() oItems:AddBar(oItems:AddItem("Original"),"Original","01/02/2001","01/02/2001") oItems:AddBar(oItems:AddItem("Red"),"Red","01/02/2001","01/02/2001") oItems:AddBar(oItems:AddItem("Green"),"Green","01/02/2001","01/02/2001") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1513 |
My icon-bars shows different when displaying in the chart. Any ideas
|
1512 |
The items are not colored in the chart panel
|
1511 |
I need to know how to determine the critical path (CPM) after the SchedulePDM procedure, so I can turn red the bars and links
PROCEDURE OnBarResize(oG2antt,Item,Key) oG2antt:Items():SchedulePDM(Item,Key) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h1,h2,h3,h4 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BarResize := {|Item,Key| OnBarResize(oG2antt,Item,Key)} /*Occurs when a bar is moved or resized.*/ oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,48) oChart:NonworkingDays := 0 oItems := oG2antt:Items() h1 := oItems:AddItem("Task 1") oItems:AddBar(h1,"Task","01/02/2001","01/04/2001","K1") h2 := oItems:AddItem("Task 2") oItems:AddBar(h2,"Task","01/02/2001","01/04/2001","K2") oItems:AddLink("L1",h1,"K1",h2,"K2") h3 := oItems:AddItem("Task 3") oItems:AddBar(h3,"Task","01/02/2001","01/04/2001","K3") oItems:AddLink("L2",h2,"K2",h3,"K3") h4 := oItems:AddItem("Task 3") oItems:AddBar(h4,"Task","01/02/2001","01/03/2001","K4") oItems:AddLink("L3",h2,"K2",h4,"K4") oItems:SetProperty("DefSchedulePDM",5/*exPDMCriticalPathBarColor*/,255) oItems:SetProperty("DefSchedulePDM",7/*exPDMCriticalPathLinkColor*/,255) oItems:SchedulePDM(0,"K1") oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1510 |
How can I display the Year in Thai, Buddhist, Korean format
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oLevel oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oChart := oG2antt:Chart() oChart:FirstWeekDay := oChart:LocFirstWeekDay() oChart:MonthNames := oChart:LocMonthNames() oChart:WeekDays := oChart:LocWeekDays() oChart:AMPM := oChart:LocAMPM() oChart:LevelCount := 2 oChart:SetProperty("PaneWidth",.F.,0) oChart:UnitScale := 4096/*exDay*/ oLevel := oChart:Level(0) oLevel:Label := "<%mmmm%> <%d%>, <%loc_yyyy%> <r><%ww%>" oLevel:Unit := 256/*exWeek*/ oLevel:ToolTip := oLevel:Label() oChart:ToolTip := "<%ddd%> <%m%>/<%d%>/<%loc_yyyy%>" oG2antt:SetProperty("Description",17/*exFilterBarDateMonths*/,oG2antt:Chart:MonthNames()) oG2antt:SetProperty("DefaultEditorOption",30/*exDateMonths*/,oG2antt:Chart:MonthNames()) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1509 |
How does localization work
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oChart := oG2antt:Chart() oChart:FirstWeekDay := oChart:LocFirstWeekDay() oChart:MonthNames := oChart:LocMonthNames() oChart:WeekDays := oChart:LocWeekDays() oChart:AMPM := oChart:LocAMPM() oChart:LevelCount := 2 oChart:SetProperty("PaneWidth",.F.,0) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1508 |
Is it possible to show the bars with a different brightness (2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oAppearance LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oAppearance := oG2antt:VisualAppearance() oAppearance:Add(1,"C:/Program Files/Exontrol/ExG2antt/Sample/EBN/2task--.ebn") oAppearance:Add(2,"C:/Program Files/Exontrol/ExG2antt/Sample/EBN/2task-.ebn") oAppearance:Add(3,"C:/Program Files/Exontrol/ExG2antt/Sample/EBN/2task.ebn") oAppearance:Add(4,"C:/Program Files/Exontrol/ExG2antt/Sample/EBN/2task+.ebn") oAppearance:Add(5,"C:/Program Files/Exontrol/ExG2antt/Sample/EBN/2task++.ebn") oChart := oG2antt:Chart() oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,128) oChart:NonworkingDays := 0 oChart:Bars():CallMethod("Copy","Task","--"):SetProperty("Color",0x1000000) oChart:Bars():CallMethod("Copy","Task","-"):SetProperty("Color",0x2000000) oChart:Bars:Item("Task"):SetProperty("Color",0x3000000) oChart:Bars():CallMethod("Copy","Task","+"):SetProperty("Color",0x4000000) oChart:Bars():CallMethod("Copy","Task","++"):SetProperty("Color",0x5000000) oG2antt:Columns():Add("Brightness") oItems := oG2antt:Items() h := oItems:AddItem("0%") oItems:AddBar(h,"--","01/02/2001","01/04/2001","--") oItems:AddBar(h,"-","01/05/2001","01/07/2001","-") oItems:AddBar(h,"Task","01/08/2001","01/10/2001","") oItems:AddBar(h,"+","01/11/2001","01/13/2001","+") oItems:AddBar(h,"++","01/14/2001","01/16/2001","++") h := oItems:AddItem("25%") oItems:AddBar(h,"--","01/02/2001","01/04/2001","--") oItems:AddBar(h,"-","01/05/2001","01/07/2001","-") oItems:AddBar(h,"Task","01/08/2001","01/10/2001","") oItems:AddBar(h,"+","01/11/2001","01/13/2001","+") oItems:AddBar(h,"++","01/14/2001","01/16/2001","++") oItems:SetProperty("ItemBar",h,"<*>",19/*exBarTransparent*/,25) h := oItems:AddItem("50%") oItems:AddBar(h,"--","01/02/2001","01/04/2001","--") oItems:AddBar(h,"-","01/05/2001","01/07/2001","-") oItems:AddBar(h,"Task","01/08/2001","01/10/2001","") oItems:AddBar(h,"+","01/11/2001","01/13/2001","+") oItems:AddBar(h,"++","01/14/2001","01/16/2001","++") oItems:SetProperty("ItemBar",h,"<*>",19/*exBarTransparent*/,50) h := oItems:AddItem("75%") oItems:AddBar(h,"--","01/02/2001","01/04/2001","--") oItems:AddBar(h,"-","01/05/2001","01/07/2001","-") oItems:AddBar(h,"Task","01/08/2001","01/10/2001","") oItems:AddBar(h,"+","01/11/2001","01/13/2001","+") oItems:AddBar(h,"++","01/14/2001","01/16/2001","++") oItems:SetProperty("ItemBar",h,"<*>",19/*exBarTransparent*/,75) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1507 |
Is it possible to show the bars with a different brightness (1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn") oChart := oG2antt:Chart() oChart:Bars:Item("Task"):SetProperty("Color",0x1000000) oChart:FirstVisibleDate := "01/01/2001" oChart:SetProperty("PaneWidth",.F.,128) oG2antt:Columns():Add("Brightness") oItems := oG2antt:Items() h := oItems:AddItem("0%") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") h := oItems:AddItem("25%") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",19/*exBarTransparent*/,25) h := oItems:AddItem("50%") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",19/*exBarTransparent*/,50) h := oItems:AddItem("75%") oItems:AddBar(h,"Task","01/02/2001","01/04/2001") oItems:SetProperty("ItemBar",h,"",19/*exBarTransparent*/,75) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1506 |
So the behavior I am looking for is that a change can cascade through a bar's successors, but a change that would affect a bar's predecessors is not allowed. Is this possible to in ExG2antt
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h,h1,h2,h3 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:MarkSearchColumn := .F. oG2antt:OnResizeControl := 1/*exResizeChart*/ oG2antt:Columns():Add("Tasks") oG2antt:Columns():Add("Start"):Visible := .F. oG2antt:Columns():Add("End"):Visible := .F. oChart := oG2antt:Chart() oChart:LevelCount := 2 oChart:FirstVisibleDate := "09/18/2006" oChart:SetProperty("PaneWidth",.F.,64) oChart:SetProperty("ScrollRange",0/*exStartDate*/,oChart:FirstVisibleDate()) oChart:SetProperty("ScrollRange",1/*exEndDate*/,"12/31/2006") oChart:SetProperty("MarkSelectDateColor",0x7fff0000) oChart:SelectLevel := 1 oChart:SetProperty("SelectDate","09/19/2006",.T.) oChart:AllowCreateBar := 0/*exNoCreateBar*/ oChart:AllowLinkBars := .F. oItems := oG2antt:Items() h := oItems:AddItem("Project") oItems:SetProperty("CellValue",h,1,"09/21/2006") oItems:SetProperty("CellValue",h,2,"10/03/2006") oItems:AddBar(h,"Summary",oItems:CellValue(h,1),oItems:CellValue(h,2),"sum") h1 := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("CellValue",h1,1,oItems:CellValue(h,1)) oItems:SetProperty("CellValue",h1,2,"09/24/2006") oItems:AddBar(h1,"Task",oItems:CellValue(h1,1),oItems:CellValue(h1,2),"K1") oItems:SetProperty("ItemBar",h1,"K1",22/*exBarMinStart*/,"09/20/2006") h2 := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellValue",h2,1,oItems:CellValue(h1,2)) oItems:SetProperty("CellValue",h2,2,"09/28/2006") oItems:AddBar(h2,"Unknown",oItems:CellValue(h2,1),oItems:CellValue(h2,2),"K2") oItems:AddLink("L1",h1,"K1",h2,"K2") h3 := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellValue",h3,1,oItems:CellValue(h2,2)) oItems:SetProperty("CellValue",h3,2,oItems:CellValue(h,2)) oItems:AddBar(h3,"Task",oItems:CellValue(h3,1),oItems:CellValue(h3,2),"K3") oItems:AddLink("L2",h2,"K2",h3,"K3") oItems:GroupBars(h1,"K1",.F.,h2,"K2",.T.,31,"0;4") oItems:GroupBars(h2,"K2",.F.,h3,"K3",.T.,31,"0;2") oItems:DefineSummaryBars(h,"sum",h1,"K1") oItems:DefineSummaryBars(h,"sum",h2,"K2") oItems:DefineSummaryBars(h,"sum",h3,"K3") oItems:SetProperty("ExpandItem",h,.T.) oItems:SetProperty("ItemBold",h,.T.) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1505 |
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Chart():SetProperty("PaneWidth",.T.,0) oG2antt:MarkSearchColumn := .F. oColumns := oG2antt:Columns() oColumn := oColumns:Add("Car") oColumn:DisplayFilterButton := .T. oColumn:FilterType := 240/*exFilter*/ oColumn:Filter := "MAZDA" oColumn1 := oColumns:Add("Equipment") oColumn1:DisplayFilterButton := .T. oColumn1:DisplayFilterPattern := .F. oColumn1:CustomFilter := "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*" oColumn1:FilterType := 3/*exPattern*/ oColumn1:Filter := "AIR BAG" oItems := oG2antt:Items() oItems:SetProperty("CellValue",oItems:AddItem("Mazda"),1,"Air Bag") oItems:SetProperty("CellValue",oItems:AddItem("Toyota"),1,"Air Bag,Air condition") oItems:SetProperty("CellValue",oItems:AddItem("Ford"),1,"Air condition") oItems:SetProperty("CellValue",oItems:AddItem("Nissan"),1,"Air Bag,ABS,ESP") oItems:SetProperty("CellValue",oItems:AddItem("Mazda"),1,"Air Bag, ABS,ESP") oItems:SetProperty("CellValue",oItems:AddItem("Mazda"),1,"ABS,ESP") oG2antt:ApplyFilter() oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1504 |
How can I have a case-sensitive filter
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oColumn,oColumn1 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Chart():SetProperty("PaneWidth",.T.,0) oG2antt:MarkSearchColumn := .F. oColumns := oG2antt:Columns() oColumn := oColumns:Add("Car") oColumn:DisplayFilterButton := .T. oColumn:FilterType := 496/*exFilterDoCaseSensitive+exFilter*/ oColumn:Filter := "Mazda" oColumn1 := oColumns:Add("Equipment") oColumn1:DisplayFilterButton := .T. oColumn1:DisplayFilterPattern := .F. oColumn1:CustomFilter := "Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*" oColumn1:FilterType := 259/*exFilterDoCaseSensitive+exPattern*/ oColumn1:Filter := "Air Bag" oItems := oG2antt:Items() oItems:SetProperty("CellValue",oItems:AddItem("Mazda"),1,"Air Bag") oItems:SetProperty("CellValue",oItems:AddItem("Toyota"),1,"Air Bag,Air condition") oItems:SetProperty("CellValue",oItems:AddItem("Ford"),1,"Air condition") oItems:SetProperty("CellValue",oItems:AddItem("Nissan"),1,"Air Bag,ABS,ESP") oItems:SetProperty("CellValue",oItems:AddItem("Mazda"),1,"Air Bag, ABS,ESP") oItems:SetProperty("CellValue",oItems:AddItem("Mazda"),1,"ABS,ESP") oG2antt:ApplyFilter() oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1503 |
Is it possible to add a custom label to the days with a specified background color
|
1502 |
What is the event fired when I change "...Chart.PaneWidthLeft" (or "...Chart.PaneWidthRight") in the Gantt splitter window
PROCEDURE OnChartEndChanging(oG2antt,Operation) DevOut( "End Operation(exVSplitterChange(10)" ) DevOut( Transform(Operation,"") ) DevOut( "PaneWidth:" ) DevOut( Transform(oG2antt:Chart:PaneWidth(.F.),"") ) RETURN PROCEDURE OnChartStartChanging(oG2antt,Operation) DevOut( "Start Operation(exVSplitterChange(10)" ) DevOut( Transform(Operation,"") ) DevOut( "PaneWidth:" ) DevOut( Transform(oG2antt:Chart:PaneWidth(.F.),"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:ChartEndChanging := {|Operation| OnChartEndChanging(oG2antt,Operation)} /*Occurs after the chart has been changed.*/ oG2antt:ChartStartChanging := {|Operation| OnChartStartChanging(oG2antt,Operation)} /*Occurs when the chart is about to be changed.*/ oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1501 |
I want to ask if I can select more than one bar in the chart and move them together
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oG2antt LOCAL oChart LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oG2antt := XbpActiveXControl():new( oForm:drawingArea ) oG2antt:CLSID := "Exontrol.G2antt.1" /*{CD481F4D-2D25-4759-803F-752C568F53B7}*/ oG2antt:create(,, {10,60},{610,370} ) oG2antt:BeginUpdate() oG2antt:Columns():Add("Task") oChart := oG2antt:Chart() oChart:FirstVisibleDate := "12/29/2000" oChart:SetProperty("PaneWidth",.F.,64) oChart:LevelCount := 2 oItems := oG2antt:Items() oItems:AddBar(oItems:AddItem("Task 1"),"Task","01/02/2001","01/04/2001","K1") oItems:AddBar(oItems:AddItem("Task 2"),"Task","01/04/2001","01/06/2001","K2") oItems:AddBar(oItems:AddItem("Task 3"),"Task","01/08/2001","01/10/2001","K3") h := oItems:AddItem("") oItems:AddBar(h,"","01/08/2001","01/10/2001","","<b>Right click</b> the chart, start dragging to select multiple bars<br>or click a bar while pressing the <b>CTRL</b> key") oItems:SetProperty("ItemHeight",h,36) oItems:SetProperty("ItemBar",h,"",29/*exBarSelectable*/,.F.) oG2antt:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |